home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-09-14 | 17.5 KB | 467 lines |
- 5 REM FINANCE VERSION 1.0 MARCH 4, 1982
- 10 COLOR 7:CLS:KEY OFF:SCREEN 0,0,0:WIDTH "SCRN:",80
- 20 ON ERROR GOTO 5950
- 25 PRINT " * * F I N A N C I A L F U N C T I O N S * * (Version 1.0)": PRINT :PRINT
- 30 PRINT "SELECT ONE OF THE FOLLOWING FINANCIAL FUNCTIONS:"
- 40 PRINT
- 50 PRINT " 1 -- AMORTIZATION SCHEDULE"
- 60 PRINT " 2 -- DAYS BETWEEN DATES"
- 70 PRINT " 3 -- PRESENT VALUE OF A FUTURE SUM"
- 80 PRINT " 4 -- FUTURE VALUE OF A PRESENT SUM"
- 90 PRINT " 5 -- SIMPLE INTEREST FOR DAYS"
- 100 PRINT " 6 -- INTEREST RATE - COMPOUND INTEREST"
- 110 PRINT " 7 -- NOMINAL & EFFECTIVE INTEREST RATES
- 120 PRINT " 8 -- INTEREST RATE - INSTALLMENT LOAN"
- 130 PRINT " 9 -- PRESENT VALUE OF A SERIES OF PAYMENTS"
- 135 PRINT " 10 -- FUTURE VALUE OF REGULAR DEPOSITS
- 138 PRINT " 11 -- REGULAR DEPOSITS FOR FUTURE VALUE
- 140 PRINT " 12 -- INTERNAL RATE OF RETURN
- 146 PRINT " 13 -- BOND - PRESENT VALUE
- 147 PRINT " 14 -- BOND - YIELD TO MATURITY
- 149 PRINT " 15 -- EXIT FROM PROGRAM
- 151 PRINT:INPUT " SELECT OPTION, THEN PRESS `ENTER' ==> ";FI
- 160 IF FI<1 OR FI > 15 THEN RUN
- 170 ON FI GOTO 720,1670,190,550,390,1030,4220,1310,2220,4630,4820,4380,5590,5750,180
- 180 END
- 181 STOP
- 189 REM -----------------------------------------------------------------
- 190 F=0:R=0:M=0:N=0
- 195 CLS: PRINT " FUNCTION 3 -- PRESENT VALUE OF A FUTURE SUM ": PRINT: PRINT
- 200 PRINT:PRINT "This routine calculates the Present Value of a Future Sum, discounting"
- 210 PRINT "it for a given Interest Rate, compounded as instructed.":PRINT
- 230 INPUT " FUTURE SUM (IN DOLLARS) ";F
- 240 INPUT " ANNUAL INTEREST RATE (%) ";R
- 250 INPUT " # OF PERIODS IN ONE YEAR ";M
- 260 INPUT " # PERIODS TO BE CALCULATED ";N
- 270 I=R/M:I=I/100
- 280 T=1+I:A=T
- 290 IF N=1 GOTO 310
- 300 FOR X=1 TO (N-1):S=A*T:A=S:NEXT X
- 310 P=F/A: PRINT: PRINT
- 320 PRINT " A Future Sum of $";F;" for ";N;" Periods, where there are "
- 330 PRINT M;"Periods per Year at";R;"% Annual Interest Rate, is worth "
- 350 PRINT:PRINT " $";P;" in Today's Dollars"
- 353 PRINT: PRINT:
- 355 PRINT "WHAT DO YOU WANT TO DO: "
- 358 PRINT " 1 -- RETURN TO MAIN MENU"
- 360 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 363 INPUT " SELECT OPTION ==> ";IA
- 366 IF IA = 2 THEN GOTO 190
- 369 IF IA <>1 THEN GOTO 363
- 370 RUN
- 380 END
- 389 REM -----------------------------------------------------------------
- 390 P=0:D=0:R=0
- 395 CLS: PRINT " FUNCTION 5 -- SIMPLE INTEREST FOR DAYS ": PRINT: PRINT
- 400 PRINT "This routine calculates Simple Interest on dollars held in deposit"
- 420 PRINT "for a specified number of days, given a specific interest rate.":PRINT
- 430 INPUT " AMOUNT OF DEPOSIT (IN DOLLARS) ";P
- 440 INPUT " NUMBER OF DAYS ON DEPOSIT ";D
- 450 INPUT " INTEREST RATE (PERCENT) ";R
- 460 PRINT:PRINT:PRINT "For a starting Principal of $";P;"at a ";
- 470 PRINT "Rate of";R;"% for ";D;"days"
- 480 PRINT:PRINT " the Amount of Interest = $";
- 490 I=R/100/365*D*P
- 500 IF I>327.68 GOTO 520
- 510 I=INT(I*100+0.5)/100
- 520 PRINT USING "###,###.##";I;:PRINT " or $";:PRINT USING "#,###.##";I/D;:PRINT" per day":PRINT:PRINT:PRINT
- 523 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 525 PRINT " 1 -- RETURN TO MAIN MENU"
- 528 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 530 INPUT " SELECT OPTION ==> ";IA
- 533 IF IA = 2 THEN GOTO 390
- 536 IF IA <>1 THEN GOTO 530
- 539 RUN
- 540 END
- 549 REM -----------------------------------------------------------------
- 550 CLS:P=0:R=0:M=0:N=0
- 551 PRINT " FUNCTION 4 -- FUTURE VALUE OF A PRESENT SUM ": PRINT: PRINT
- 552 PRINT"This function computes the Future Value of a Present Sum, given the"
- 553 PRINT "Annual Interest Rate, and the number of Periods to Maturity."
- 560 PRINT:INPUT " PRESENT SUM (IN DOLLARS) ";P
- 570 INPUT " ANNUAL INTEREST RATE (%) ";R
- 580 INPUT " # OF PERIODS IN ONE YEAR ";M
- 590 INPUT " # OF PERIODS TO MATURITY ";N
- 600 I=R/M:I=I/100:T=I+1:A=T
- 610 IF N=1 THEN GOTO 630
- 620 FOR K=1 TO (N-1):S=A*T:A=S:NEXT K
- 630 F=P*A
- 633 PRINT: PRINT
- 640 PRINT "For a Present Sum of $";P;"at an Annual Interest Rate of";R;"% "
- 650 PRINT "for ";N;"Periods, where there are ";M;"Periods per Year:"
- 670 PRINT:PRINT " The Future Value is $";F
- 680 PRINT " The Increase is $";F-P;", or";(F/P)*100-100;"%"
- 683 PRINT: PRINT:
- 685 PRINT "WHAT DO YOU WANT TO DO: "
- 688 PRINT " 1 -- RETURN TO MAIN MENU"
- 690 PRINT " 2 -- RERUN CURRENT FUNCTION"
- 693 INPUT " SELECT OPTION ==> ";IA
- 695 IF IA = 2 THEN GOTO 550
- 698 IF IA <>1 THEN GOTO 693
- 700 RUN
- 710 END
- 719 REM -----------------------------------------------------------------
- 720 DEFDBL I,T:C=0:P=0:L=0:R=0:M=0:CLS:AY=0:AT=0:YR=0
- 725 PRINT " FUNCTION 1 -- AMORTIZATION SCHEDULE ": PRINT
- 727 PRINT"This function computes the Principal and Interest for a series of "
- 728 PRINT"payments over a given period at a specified Interest Rate. If the"
- 730 PRINT"amount of the payment is not known, it will be calculated.":PRINT
- 735 INPUT " PRINCIPAL (DOLLARS AND CENTS) " ;P
- 740 INPUT " NUMBER OF PERIODS (IN MONTHS) " ;L
- 750 INPUT " ANNUAL INTEREST RATE (PERCENT) ";R
- 760 INPUT " PAYMENT(IF KNOWN), THEN `ENTER' ";M
- 770 I=R/1200
- 780 T=1-1/(1+I)^L:K=P
- 790 IF M<>0 THEN GOTO 810
- 800 M=P*I/T
- 810 GOSUB 990
- 815 AY=0
- 820 FOR Z=1 TO L
- 830 IF C<12 GOTO 880
- 835 YR=YR+1
- 840 PRINT:PRINT "Year of Loan: ";YR;
- 845 PRINT " $";K;" for ";L;"Months at";R;"%"
- 850 AT = AY +AT
- 853 PRINT" Total Interest Paid during Year ==> $";:PRINT USING "#,###,###.##";AY
- 855 AY = 0: PRINT
- 857 PRINT"SELECT OPTION:"
- 858 INPUT " 1 -- RETURN TO MAIN MENU 2 -- RERUN FUNCTION 3 -- CONTINUE ==> ";CH
- 865 IF CH=1 THEN 10
- 866 IF CH=2 THEN 720
- 867 IF CH <> 3 THEN 858
- 870 C=0:GOSUB 990
- 880 A=P*I
- 890 A=INT(A*100+0.5)/100
- 900 M=INT(M*100+0.5)/100
- 910 B=M-A:P=P-B
- 920 B=INT(B*100+0.5)/100
- 930 P=INT(P*100+0.5)/100
- 935 AY = AY + A
- 940 PRINT USING "#### ";Z;:PRINT USING "###,###.##";P;M;B;A
- 950 IF P<=0 THEN 955
- 953 C=C+1:NEXT Z
- 955 PRINT:PRINT "Year of Loan: ";YR+1;
- 956 PRINT " $";K;" for ";L;"Months at";R;"%"
- 958 PRINT " Total Interest Paid during Year ==> $";:PRINT USING "#,###,###.##";AY: AT=AY+AT
- 962 PRINT " Total Interest Paid during Loan ==> $";:PRINT USING "#,###,###.##";AT
- 964 PRINT:
- 965 PRINT"SELECT OPTION:"
- 968 PRINT " 1 -- RETURN TO MAIN MENU";
- 970 PRINT " 2 -- RERUN CURRENT FUNCTION";" ==> ";:INPUT IA
- 975 IF IA = 2 THEN GOTO 720
- 978 IF IA <>1 THEN GOTO 965
- 980 RUN
- 985 END
- 990 CLS: PRINT " FUNCTION 1 -- AMORTIZATION SCHEDULE ": PRINT
- 1000 PRINT "PAYMENT REMAINING MONTHLY PRINCIPAL INTEREST"
- 1010 PRINT "NUMBER PRINCIPAL PAYMENT PAYMENT PAYMENT
- 1020 RETURN
- 1029 REM -----------------------------------------------------------------
- 1030 CLS:PRINT " FUNCTION 6 -- INTEREST RATE - COMPOUND INTEREST": PRINT: PRINT
- 1033 F=0: PRINT"This routine computes the annual interest rate for a specified Future Value,"
- 1034 PRINT"given the Present Value, the total period of time, and the number of periods." : PRINT: PRINT
- 1040 INPUT " THE FUTURE VALUE (DOLLARS) ";FV
- 1050 IF F=4 THEN 1130
- 1060 INPUT " THE PRESENT VALUE (DOLLARS)";PV
- 1070 IF F=3 THEN 1130
- 1080 INPUT " NUMBER OF PERIODS PER YEAR ";PY
- 1090 IF F=5 THEN 1130
- 1100 PRINT "TOTAL LENGTH OF TIME FOR WHICH INTEREST IS TO BE FIGURED"
- 1120 INPUT " USE THE FORMAT (YY,MM,DD) ";Y,M,D
- 1130 PD=Y*PY+M*PY/12+D*PY/365
- 1140 I=((FV/PV)^(1/PD)-1)*100*PY
- 1150 A$="###.##":F=0
- 1155 CLS: PRINT " FUNCTION 6 -- INTEREST RATE - COMPOUND INTEREST ": PRINT
- 1160 PRINT: PRINT:PRINT "For a Future Sum of $";FV;"with a Present Value of $";PV;" with"
- 1170 PRINT PY;"Periods per Year, for ";Y;"Years,";M;"Months and";D;"Days"
- 1180 PRINT:PRINT " The Annual Interest Rate is ";
- 1190 PRINT USING A$;I;:PRINT " %"
- 1200 PRINT:PRINT:PRINT "WHAT DO YOU WANT TO DO:"
- 1205 PRINT
- 1208 PRINT " 1 -- RETURN TO MAIN MENU"
- 1210 PRINT " 2 -- RERUN ENTIRE FUNCTION"
- 1215 PRINT " 3 -- CHANGE PRESENT VALUE"
- 1220 PRINT " 4 -- CHANGE FUTURE VALUE"
- 1230 PRINT " 5 -- CHANGE PERIODS PER YEAR
- 1240 PRINT " 6 -- CHANGE TIME RANGE
- 1270 PRINT:INPUT " SELECT OPTION ==> ";F
- 1280 IF F<1 OR F>6 THEN 1160
- 1290 F=INT(F):ON F GOTO 10,1030,1060,1040,1080,1100
- 1300 GOTO 1200
- 1305 END
- 1309 REM -----------------------------------------------------------------
- 1310 CLEAR:F=0:CLS:DEFDBL I:A$="##.## %"
- 1315 PRINT " FUNCTION 8 -- INTEREST RATE - INSTALLMENT LOAN": PRINT
- 1318 ON ERROR GOTO 5950
- 1320 PRINT"This routine computes the Interest Rate for an Installment Loan, given"
- 1321 PRINT"the loan duration, the number of payments per year, and the Payment Amount.
- 1325 PRINT
- 1330 INPUT " PRESENT VALUE (DOLLARS) "; PV
- 1340 IF F=3 GOTO 1420
- 1350 INPUT " NUMBER OF TERMS PER YEAR ";NY
- 1360 IF F=5 GOTO 1420
- 1370 INPUT " NUMBER OF PERIODS IN LOAN";N
- 1380 IF F=4 GOTO 1420
- 1390 INPUT " AMOUNT OF EACH PAYMENT ";P
- 1400 IF F=6 GOTO 1420
- 1410 CLS:PRINT:PRINT ". . . COMPUTER WORKING. BE WITH YOU IN A FEW SECONDS . . ."
- 1420 I=0.008
- 1430 I1=P/PV*((1+I)^N-1)/(1+I)^N
- 1440 IF ABS(I-I1)<9.99E-07 THEN 1470
- 1450 I=I1
- 1460 GOTO 1430
- 1470 I=I1*NY*100
- 1480 CLS:PRINT " FUNCTION 8 -- INTEREST RATE - INSTALLMENT LOAN ": PRINT: PRINT
- 1490 PRINT "For a Loan with a Present Value of $";PV;" and "
- 1500 PRINT N;"Payments of $";P;", where there are";
- 1510 PRINT NY;"Payments per year"
- 1520 PRINT:PRINT " the Annual Interest Rate is ";
- 1530 PRINT USING A$;I
- 1540 F=0:PRINT
- 1550 PRINT:PRINT "WHAT DO YOU WANT TO DO:"
- 1555 PRINT
- 1560 PRINT " 1 -- RETURN TO MAIN MENU"
- 1570 PRINT " 2 -- RERUN ENTIRE FUNCTION"
- 1580 PRINT " 3 -- CHANGE LOAN VALUE"
- 1590 PRINT " 4 -- CHANGE NUMBER OF INTEREST PERIODS"
- 1600 PRINT " 5 -- CHANGE PERIODS PER YEAR
- 1610 PRINT " 6 -- CHANGE PAYMENT AMOUNT
- 1620 PRINT:INPUT " SELECT OPTION ==> ";F
- 1630 IF F<1 OR F>6 THEN 1620
- 1640 F=INT(F):ON F GOTO 10,1310,1330,1370,1350,1390
- 1650 GOTO 1550
- 1660 END
- 1669 REM -----------------------------------------------------------------
- 1670 CLS: PRINT " FUNCTION 2 -- DAYS BETWEEN DATES": PRINT: PRINT
- 1675 CH=0: PRINT"This routine computes the Total Number of Days between two dates.":PRINT: PRINT
- 1680 PRINT "USING THE FORMAT (MM,DD,YYYY):
- 1690 INPUT " ENTER THE EARLIEST DATE ";M,D,Y:GOSUB 1870
- 1700 N=M:F=D:Z=Y:E=T
- 1710 IF CH=1 GOTO 1740
- 1720 INPUT " ENTER THE LATEST DATE ";M,D,Y:GOSUB 1870
- 1730 P=M:G=D:W=Y:L=T
- 1740 IF E>L THEN PRINT:PRINT "ERROR: CHECK THE DATES AND TRY AGAIN":GOTO 1780
- 1750 O=L-E
- 1760 PRINT:PRINT "The Total Number of Days between ";N;"/";F;"/";Z;
- 1770 PRINT " and ";P;"/";G;"/";W;"is"
- 1775 PRINT:PRINT " ";O;" Days "
- 1780 CH=0:PRINT:PRINT:PRINT "WHAT DO YOU WISH TO DO:"
- 1790 PRINT " 1 -- RETURN TO MAIN MENU"
- 1800 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 1830 INPUT " SELECT OPTION ==> ";IA
- 1840 IF IA = 2 THEN GOTO 1670
- 1850 IF IA <>1 THEN GOTO 1830
- 1860 RUN
- 1865 END
- 1870 YY=Y-1:T=365*YY+FIX(YY/4)-FIX(YY/100)+FIX(YY/400)
- 1880 CD=30*(M-1)+FIX((M-1)/3)+D
- 1890 IF M=2 OR M=9 OR M>10 THEN CD=CD+1:GOTO 1910
- 1900 IF M>2 AND M<8 AND M<>6 THEN CD=CD-1
- 1910 IF M<3 OR Y<>4*FIX(Y/4) THEN 1930
- 1920 IF Y=400*FIX(Y/400) OR Y<>100*FIX(Y/100) THEN CD=CD+1
- 1930 T=T+CD:RETURN
- 2219 REM -----------------------------------------------------------------
- 2220 CLS:PRINT " FUNCTION 9 -- PRESENT VALUE OF A SERIES OF PAYMENTS":PRINT:PRINT
- 2222 F=0
- 2225 PRINT:PRINT "This program determines the Present Value of a series of payments."
- 2230 PRINT "It is normally used to determine the amount remaining on a loan, "
- 2240 PRINT "given the amount of the regular payment, the number of remaining"
- 2250 PRINT "payments, the number of payments per year, and the interest rate."
- 2260 PRINT
- 2270 INPUT " AMOUNT OF REGULAR PAYMENT ";PT
- 2280 IF F=3 GOTO 2340
- 2290 INPUT " # OF REMAINING PAYMENTS ";NP
- 2300 IF F=4 GOTO 2340
- 2310 INPUT " # OF PAYMENTS PER YEAR ";PY
- 2320 IF F=5 GOTO 2340
- 2330 INPUT " THE ANNUAL INTEREST RATE ";IR
- 2340 I=IR/100
- 2344 CLS:PRINT " FUNCTION 9 -- PRESENT VALUE OF A SERIES OF PAYMENTS": PRINT: PRINT
- 2347 T1=1+(I/PY):T1=T1^NP:T1=1/T1:T1=1-T1
- 2350 PR=PT*PY*T1/I
- 2360 PRINT "For ";NP;" Payments of $";PT;",with ";PY; "Payments per Year, "
- 2370 PRINT "at an Annual Interest Rate of ";IR;"%";" the Original Principal"
- 2380 PRINT "(or Value of the Remaining Payments) is"
- 2390 PRINT:PRINT " $";:PRINT USING "#,###,###.##";PR
- 2400 PRINT:PRINT "WHAT DO YOU WANT TO DO:"
- 2405 PRINT
- 2410 PRINT " 1 -- RETURN TO MAIN MENU"
- 2420 PRINT " 2 -- RERUN ENTIRE FUNCTION"
- 2430 PRINT " 3 -- CHANGE PAYMENT AMOUNT"
- 2440 PRINT " 4 -- CHANGE NUMBER OF PAYMENTS "
- 2450 PRINT " 5 -- CHANGE PAYMENTS PER YEAR
- 2460 PRINT " 6 -- CHANGE ANNUAL INTEREST RATE"
- 2470 PRINT:INPUT " SELECT OPTION ==> ";F
- 2480 IF F<1 OR F>6 THEN 2470
- 2490 F=INT(F):ON F GOTO 10,2220,2270,2290,2310,2330
- 2495 GOTO 2400
- 2500 END
- 4219 REM -----------------------------------------------------------------
- 4220 CLEAR
- 4235 CLS: PRINT " FUNCTION 7 -- NOMINAL AND EFFECTIVE INTEREST RATES":PRINT:PRINT
- 4240 PRINT "This program computes the Nominal and Effective Interest Rates when"
- 4245 PRINT"given the Future Value, Present Value, number of periods between the"
- 4260 PRINT "two, and the number of compounding periods per year.":PRINT
- 4280 INPUT " FUTURE VALUE (DOLLARS) ";FV
- 4290 INPUT " PRESENT VALUE (DOLLARS) ";PV
- 4300 INPUT " TOTAL NUMBER OF PERIODS ";NP
- 4310 INPUT " NUMBER OF PERIODS PER YEAR";PY
- 4320 NR=(PY*((FV/PV)^(1/NP))-PY)*100
- 4330 ER=((FV/PV)^(PY/NP)-1)*100
- 4340 PRINT:PRINT " The Nominal Rate is";NR;" %
- 4345 PRINT " The Effective Rate is";ER;" %
- 4350 PRINT: PRINT:
- 4355 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 4358 PRINT " 1 -- RETURN TO MAIN MENU"
- 4360 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 4363 INPUT " SELECT OPTION ==> ";IA
- 4367 IF IA = 2 THEN GOTO 4230
- 4370 IF IA <>1 THEN GOTO 4363
- 4373 RUN
- 4379 REM -----------------------------------------------------------------
- 4380 CLS: PRINT " FUNCTION 12 -- INTERNAL RATE OF RETURN": PRINT: PRINT
- 4390 CLEAR
- 4400 PRINT "This function computes the Internal Rate of Return on an Investment,"
- 4410 PRINT "based on the Periodic Earnings of that Investment, and discounted for"
- 4420 PRINT "for the Present Value of the Expected Sales Price.": PRINT
- 4440 INPUT " PURCHASE PRICE (INVESTMENT) ";PV
- 4450 INPUT " THE EXPECTED SALE PRICE ";FV
- 4455 INPUT " THE TOTAL NUMBER OF PERIODS ";N
- 4460 INPUT " NUMBER OF PERIODS PER YEAR ";PY: PRINT
- 4480 DIM EP(N)
- 4490 FOR X=1 TO N:PRINT " EARNINGS FOR PERIOD #";X;:INPUT EP(X):NEXT X
- 4500 PRINT: PRINT
- 4505 PRINT" . . . COMPUTER WORKING. BE WITH YOU IN A FEW SECONDS . . .
- 4510 IR=0.15/PY:I1=0.25
- 4520 PF=FV/(1+IR)^N
- 4530 TE=0
- 4540 FOR X=1 TO N
- 4550 PE=EP(X)/(1+IR)^X
- 4560 TE=TE+PE
- 4570 NEXT X
- 4580 I1=IR*(PF+TE)/PV
- 4590 IF ABS(IR-I1)<9.99E-07 THEN IR=IR*PY*100:GOTO 4603
- 4600 IR=I1:GOTO 4520
- 4603 CLS: PRINT " FUNCTION 12 -- INTERNAL RATE OF RETURN": PRINT: PRINT
- 4608 PRINT "For an Investment of $";PV;", an Expected Sales Price of $";FV
- 4610 PRINT"and ";N;"periods, where there are ";PY;"periods per year:"
- 4613 PRINT:PRINT " The Rate of Return is ";IR;"%"
- 4614 PRINT: PRINT:
- 4616 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 4618 PRINT " 1 -- RETURN TO MAIN MENU"
- 4620 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 4622 INPUT " SELECT OPTION ==> ";IA
- 4624 IF IA = 2 THEN GOTO 4380
- 4625 IF IA <>1 THEN GOTO 4622
- 4627 RUN
- 4628 END
- 4629 REM -----------------------------------------------------------------
- 4630 CLS: PRINT " FUNCTION 10 -- FUTURE VALUE OF REGULAR DEPOSITS": PRINT: PRINT
- 4633 CLEAR:PRINT "This function computes the Future Value of a Series of Regular Deposits,"
- 4650 PRINT "where each deposit is identical, and interest is compounded with the same "
- 4670 PRINT "frequency that the deposits are made. This is known as an Annuity Due;"
- 4680 PRINT "that is, payments are made in advance of the interest being paid, such as
- 4700 PRINT "savings accounts or insurance policies.
- 4705 PRINT
- 4710 INPUT " AMOUNT OF REGULAR DEPOSIT ";RD
- 4720 INPUT " NUMBER OF DEPOSITS PER YEAR ";PY
- 4730 INPUT " THE TOTAL NUMBER OF MONTHS ";M
- 4750 Y = M/12
- 4760 INPUT " NOMINAL ANNUAL INTEREST RATE";IR
- 4770 I=IR/PY/100
- 4780 T=(1+I)^(PY*Y):T=T-1:T=T/I:FV=RD*T
- 4790 PRINT:PRINT " The Future Value is $";:PRINT USING "#,###,###.##";FV
- 4793 PRINT: PRINT:
- 4795 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 4798 PRINT " 1 -- RETURN TO MAIN MENU"
- 4800 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 4803 INPUT " SELECT OPTION ==> ";IA
- 4804 IF IA = 2 THEN GOTO 4630
- 4805 IF IA <>1 THEN GOTO 4803
- 4806 RUN
- 4809 END
- 4819 REM -----------------------------------------------------------------
- 4820 CLS: PRINT" FUNCTION 11 -- REGULAR DEPOSITS FOR FUTURE VALUE":PRINT:PRINT
- 4823 PRINT "This program computes the Amount of Regular Deposits needed to produce a"
- 4840 PRINT "particular Future Value. It is an example of an Annuity Due.":PRINT
- 4850 INPUT " FUTURE VALUE (IN DOLLARS) ";FV
- 4860 INPUT " NUMBER OF DEPOSITS PER YEAR ";PY
- 4870 INPUT " THE TOTAL NUMBER OF MONTHS ";M
- 4890 Y = M/12
- 4900 INPUT " NOMINAL ANNUAL INTEREST RATE";IR
- 4910 I=IR/PY/100
- 4920 T=(1+I)^(PY*Y):T=T-1:T=I/T:RD=FV*T
- 4930 PRINT:PRINT " The Amount of the Regular Deposit is $";:PRINT USING "#,###,###.##";RD
- 4933 PRINT: PRINT:
- 4935 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 4938 PRINT " 1 -- RETURN TO MAIN MENU"
- 4940 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 4943 INPUT " SELECT OPTION ==> ";IA
- 4944 IF IA = 2 THEN GOTO 4820
- 4945 IF IA <>1 THEN GOTO 4943
- 4946 RUN
- 4948 END
- 5589 REM -----------------------------------------------------------------
- 5590 CLS:PRINT " FUNCTION 13 -- BOND - PRESENT VALUE": PRINT: PRINT
- 5591 ON ERROR GOTO 5950
- 5593 CLEAR:PRINT "This program determines the Present Value of a Coupon Bond at a specified"
- 5610 PRINT "Rate of Interest, given specific Financial Information on the Bond.":PRINT
- 5640 INPUT " DESIRED RATE OF INTEREST (PERCENT)";IR
- 5650 INPUT " FACE (REDEMPTION) AMOUNT OF BOND ";AM
- 5660 INPUT " NUMBER OF PAYMENT PERIODS PER YEAR";PY
- 5670 INPUT " NUMBER OF PERIODS TO MATURITY ";PN
- 5680 INPUT " THE PERIODIC PAYMENT (IN DOLLARS) ";PP
- 5690 PRINT:PRINT
- 5700 IR=IR/PY/100:PV=AM/(1+IR)^PN
- 5710 T=(1+IR)^(-PN):T=1-T:T=T/IR:T=T*PP
- 5720 PV=PV+T
- 5723 PRINT " The Present Value is $";:PRINT USING"###,###.##";PV
- 5730 PRINT: PRINT:
- 5733 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 5735 PRINT " 1 -- RETURN TO MAIN MENU"
- 5738 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 5740 INPUT " SELECT OPTION ==> ";IA
- 5742 IF IA = 2 THEN GOTO 5590
- 5745 IF IA <>1 THEN GOTO 5740
- 5746 RUN
- 5748 END
- 5749 REM -----------------------------------------------------------------
- 5750 CLS:CLEAR
- 5755 PRINT " FUNCTION 14 -- BOND - YIELD TO MATURITY": PRINT: PRINT
- 5760 ON ERROR GOTO 5950
- 5770 PRINT "This program determines the Yield to Maturity on a Bond, given the"
- 5780 PRINT "Current Purchase Price. This is the true Rate of Return on a Bond."
- 5790 PRINT
- 5800 INPUT " PURCHASE PRICE OF THE BOND ";PV
- 5810 INPUT " THE REDEMPTION (FACE) VALUE ";FV
- 5820 INPUT " ANNUAL QUOTED INTEREST RATE ";IR
- 5830 INPUT " # OF COUPON PAYMENTS PER YEAR ";PY
- 5840 INPUT " # OF PAYMENT PERIODS REMAINING";N
- 5850 INPUT " AMOUNT OF THE COUPON PAYMENT ";CP
- 5860 PRINT:PRINT ". . . COMPUTER WORKING. BE WITH YOU IN A FEW SECONDS . . .
- 5870 IR=0.08/PY
- 5880 PF=FV/(1+IR)^N
- 5890 T=(1+IR)^(-N):T=1-T:T=T/IR*CP
- 5900 I1=IR*(PF+T)/PV
- 5910 IF ABS(IR-I1)<9.99E-07 THEN IR=IR*PY*100:GOTO 5930
- 5920 IR=I1:GOTO 5880
- 5930 PRINT:PRINT " The Yield to Maturity is";:PRINT USING A$;IR;" %"
- 5933 PRINT: PRINT:
- 5935 PRINT "WHAT DO YOU WANT TO DO: ": PRINT
- 5937 PRINT " 1 -- RETURN TO MAIN MENU"
- 5939 PRINT " 2 -- RERUN CURRENT FUNCTION": PRINT
- 5940 INPUT " SELECT OPTION ==> ";IA
- 5942 IF IA = 2 THEN GOTO 5750
- 5945 IF IA <>1 THEN GOTO 5940
- 5946 RUN
- 5948 END
- 5949 REM -----------------------------------------------------------------
- 5950 REM ERROR HANDLING ROUTINE
- 5955 PRINT
- 5960 IF ERR/2+1=11 THEN PRINT "A `DIVIDE BY ZERO' ERROR HAS OCCURRED."ELSE 6030
- 5970 PRINT:PRINT " THIS USUALLY MEANS THAT A VALUE REQUIRED BY THE FUNCTION WAS NOT ENTERED PROPERLY"
- 5980 PRINT " OR THAT AN INVALID ZERO CONDITION WAS COMPUTED."
- 5990 PRINT:PRINT " PUSH `ENTER' TO RETURN TO MAIN MENU"; INPUT A$
- 6010 RUN
- 6030 PRINT "ERROR";ERR;"HAS OCCURR
-